@kodiak-finance/orderly-trading-leaderboard 2.8.22-beta.1 → 2.8.22-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -168,7 +168,7 @@ type TradingListWidgetProps = Pick<TradingListProps, "style" | "className">;
168
168
  */
169
169
  declare const TradingListWidget: FC<TradingListWidgetProps>;
170
170
 
171
- type RankingColumnFields = "rank" | "address" | "volume" | "pnl" | "rewards" | "points";
171
+ type RankingColumnFields = "rank" | "address" | "tier" | "volume" | "pnl" | "rewards" | "points";
172
172
 
173
173
  type ListStyle = "disc" | "decimal" | "none" | "circle" | "square" | "decimal-leading-zero" | "lower-alpha" | "upper-alpha" | "lower-roman" | "upper-roman";
174
174
  type DescriptionItem = {
@@ -421,6 +421,33 @@ type GeneralRankingData = {
421
421
  perp_volume: number;
422
422
  realized_pnl: number;
423
423
  total_fee: number;
424
+ vip_tier?: string;
425
+ vipTier?: string;
426
+ vip_tier_name?: string;
427
+ vipTierName?: string;
428
+ vip_badge_url?: string;
429
+ vipBadgeUrl?: string;
430
+ vip_tier_image?: string;
431
+ vipTierImage?: string;
432
+ vip_tier_badge?: string;
433
+ vipTierBadge?: string;
434
+ tier?: string | {
435
+ name?: string;
436
+ label?: string;
437
+ tier?: string;
438
+ badge_url?: string;
439
+ badgeUrl?: string;
440
+ image?: string;
441
+ imageUrl?: string;
442
+ };
443
+ tier_name?: string;
444
+ tierName?: string;
445
+ tier_label?: string;
446
+ tierLabel?: string;
447
+ tier_image?: string;
448
+ tierImage?: string;
449
+ tier_badge_url?: string;
450
+ tierBadgeUrl?: string;
424
451
  key?: string;
425
452
  rank?: number | string;
426
453
  volume?: number;
@@ -433,6 +460,7 @@ type GeneralRankingScriptOptions = {
433
460
  address?: string;
434
461
  sortKey?: "perp_volume" | "realized_pnl";
435
462
  leaderboardEndpoint?: string;
463
+ foxifyOnly?: boolean;
436
464
  };
437
465
  declare function useGeneralRankingScript(options?: GeneralRankingScriptOptions): {
438
466
  pagination: _kodiak_finance_orderly_ui.PaginationMeta;
@@ -493,6 +521,8 @@ declare function useGeneralLeaderboardScript(options?: GeneralLeaderboardScriptO
493
521
  useCampaignDateRange: boolean;
494
522
  weeklyRanges: WeeklyDateRange[];
495
523
  currentOrAllTimeRange: WeeklyDateRange | undefined;
524
+ foxifyOnly: any;
525
+ setFoxifyOnly: (value: boolean) => void;
496
526
  searchValue: string;
497
527
  onSearchValueChange: (value: string) => void;
498
528
  clearSearchValue: () => void;
@@ -544,8 +574,9 @@ declare const CampaignLeaderboardWidget: FC<CampaignLeaderboardWidgetProps>;
544
574
 
545
575
  interface KodiakStatsProps {
546
576
  dateRange?: DateRange;
577
+ foxifyOnly?: boolean;
547
578
  }
548
- declare const BrokerStatsWidget: ({ dateRange }: KodiakStatsProps) => react_jsx_runtime.JSX.Element;
579
+ declare const BrokerStatsWidget: ({ dateRange, foxifyOnly, }: KodiakStatsProps) => react_jsx_runtime.JSX.Element;
549
580
 
550
581
  type LeaderboardPageProps = GeneralLeaderboardWidgetProps & TradingLeaderboardProviderProps & {
551
582
  style?: React.CSSProperties;
package/dist/index.d.ts CHANGED
@@ -168,7 +168,7 @@ type TradingListWidgetProps = Pick<TradingListProps, "style" | "className">;
168
168
  */
169
169
  declare const TradingListWidget: FC<TradingListWidgetProps>;
170
170
 
171
- type RankingColumnFields = "rank" | "address" | "volume" | "pnl" | "rewards" | "points";
171
+ type RankingColumnFields = "rank" | "address" | "tier" | "volume" | "pnl" | "rewards" | "points";
172
172
 
173
173
  type ListStyle = "disc" | "decimal" | "none" | "circle" | "square" | "decimal-leading-zero" | "lower-alpha" | "upper-alpha" | "lower-roman" | "upper-roman";
174
174
  type DescriptionItem = {
@@ -421,6 +421,33 @@ type GeneralRankingData = {
421
421
  perp_volume: number;
422
422
  realized_pnl: number;
423
423
  total_fee: number;
424
+ vip_tier?: string;
425
+ vipTier?: string;
426
+ vip_tier_name?: string;
427
+ vipTierName?: string;
428
+ vip_badge_url?: string;
429
+ vipBadgeUrl?: string;
430
+ vip_tier_image?: string;
431
+ vipTierImage?: string;
432
+ vip_tier_badge?: string;
433
+ vipTierBadge?: string;
434
+ tier?: string | {
435
+ name?: string;
436
+ label?: string;
437
+ tier?: string;
438
+ badge_url?: string;
439
+ badgeUrl?: string;
440
+ image?: string;
441
+ imageUrl?: string;
442
+ };
443
+ tier_name?: string;
444
+ tierName?: string;
445
+ tier_label?: string;
446
+ tierLabel?: string;
447
+ tier_image?: string;
448
+ tierImage?: string;
449
+ tier_badge_url?: string;
450
+ tierBadgeUrl?: string;
424
451
  key?: string;
425
452
  rank?: number | string;
426
453
  volume?: number;
@@ -433,6 +460,7 @@ type GeneralRankingScriptOptions = {
433
460
  address?: string;
434
461
  sortKey?: "perp_volume" | "realized_pnl";
435
462
  leaderboardEndpoint?: string;
463
+ foxifyOnly?: boolean;
436
464
  };
437
465
  declare function useGeneralRankingScript(options?: GeneralRankingScriptOptions): {
438
466
  pagination: _kodiak_finance_orderly_ui.PaginationMeta;
@@ -493,6 +521,8 @@ declare function useGeneralLeaderboardScript(options?: GeneralLeaderboardScriptO
493
521
  useCampaignDateRange: boolean;
494
522
  weeklyRanges: WeeklyDateRange[];
495
523
  currentOrAllTimeRange: WeeklyDateRange | undefined;
524
+ foxifyOnly: any;
525
+ setFoxifyOnly: (value: boolean) => void;
496
526
  searchValue: string;
497
527
  onSearchValueChange: (value: string) => void;
498
528
  clearSearchValue: () => void;
@@ -544,8 +574,9 @@ declare const CampaignLeaderboardWidget: FC<CampaignLeaderboardWidgetProps>;
544
574
 
545
575
  interface KodiakStatsProps {
546
576
  dateRange?: DateRange;
577
+ foxifyOnly?: boolean;
547
578
  }
548
- declare const BrokerStatsWidget: ({ dateRange }: KodiakStatsProps) => react_jsx_runtime.JSX.Element;
579
+ declare const BrokerStatsWidget: ({ dateRange, foxifyOnly, }: KodiakStatsProps) => react_jsx_runtime.JSX.Element;
549
580
 
550
581
  type LeaderboardPageProps = GeneralLeaderboardWidgetProps & TradingLeaderboardProviderProps & {
551
582
  style?: React.CSSProperties;
package/dist/index.js CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  var dateFns = require('date-fns');
4
4
  var react = require('react');
5
- var orderlyI18n = require('@kodiak-finance/orderly-i18n');
6
5
  var orderlyHooks = require('@kodiak-finance/orderly-hooks');
6
+ var orderlyI18n = require('@kodiak-finance/orderly-i18n');
7
7
  var orderlyUi = require('@kodiak-finance/orderly-ui');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var lucideReact = require('lucide-react');
@@ -237,7 +237,7 @@ var init_util = __esm({
237
237
  "src/components/ranking/shared/util.ts"() {
238
238
  }
239
239
  });
240
- var useRankingColumns, FirstRankIcon, SecondRankIcon, ThirdRankIcon, PnLColumnTitle, VolumeColumnTitle, PointsColumnTitle;
240
+ var useRankingColumns, getTierInfo, TierBadge, FirstRankIcon, SecondRankIcon, ThirdRankIcon, PnLColumnTitle, VolumeColumnTitle, PointsColumnTitle;
241
241
  var init_column = __esm({
242
242
  "src/components/ranking/shared/column.tsx"() {
243
243
  init_first_badge();
@@ -300,7 +300,7 @@ var init_column = __esm({
300
300
  if (!isYou) {
301
301
  if (record.rank === 1) ; else if (record.rank === 2) ; else if (record.rank === 3) ;
302
302
  }
303
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(
303
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "oui-flex oui-flex-col", children: /* @__PURE__ */ jsxRuntime.jsxs(
304
304
  "a",
305
305
  {
306
306
  className: "oui-flex oui-items-start oui-gap-1",
@@ -331,6 +331,18 @@ var init_column = __esm({
331
331
  },
332
332
  width: 90
333
333
  },
334
+ {
335
+ title: "VIP Tier",
336
+ dataIndex: "tier",
337
+ render: (_value, record) => {
338
+ const tierInfo = getTierInfo(record);
339
+ if (!tierInfo?.label) {
340
+ return "-";
341
+ }
342
+ return /* @__PURE__ */ jsxRuntime.jsx(TierBadge, { label: tierInfo.label, imageUrl: tierInfo.imageUrl });
343
+ },
344
+ width: 120
345
+ },
334
346
  {
335
347
  title: /* @__PURE__ */ jsxRuntime.jsx(VolumeColumnTitle, {}),
336
348
  dataIndex: "volume",
@@ -396,6 +408,46 @@ var init_column = __esm({
396
408
  );
397
409
  }, [t, isMobile, address, fields, enableSort, type]);
398
410
  };
411
+ getTierInfo = (record) => {
412
+ if (!record) {
413
+ return {};
414
+ }
415
+ const tierValue = record.tier;
416
+ if (tierValue && typeof tierValue === "object") {
417
+ return {
418
+ label: tierValue.name || tierValue.label || tierValue.tier,
419
+ imageUrl: tierValue.badge_url || tierValue.badgeUrl || tierValue.image || tierValue.imageUrl
420
+ };
421
+ }
422
+ const label = record.vip_tier || record.vipTier || record.vip_tier_name || record.vipTierName || record.tier || record.tier_name || record.tierName || record.tier_label || record.tierLabel;
423
+ const imageUrl = record.vip_badge_url || record.vipBadgeUrl || record.vip_tier_image || record.vipTierImage || record.vip_tier_badge || record.vipTierBadge || record.tier_image || record.tierImage || record.tier_badge_url || record.tierBadgeUrl;
424
+ return { label, imageUrl };
425
+ };
426
+ TierBadge = ({
427
+ label,
428
+ imageUrl,
429
+ className
430
+ }) => {
431
+ return /* @__PURE__ */ jsxRuntime.jsxs(
432
+ orderlyUi.Flex,
433
+ {
434
+ itemAlign: "center",
435
+ gap: 1,
436
+ className: orderlyUi.cn("oui-text-2xs", className),
437
+ children: [
438
+ imageUrl && /* @__PURE__ */ jsxRuntime.jsx(
439
+ "img",
440
+ {
441
+ src: imageUrl,
442
+ alt: `${label} badge`,
443
+ className: "oui-h-4 oui-w-4 oui-object-contain"
444
+ }
445
+ ),
446
+ /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.Text, { className: "oui-text-2xs", children: label })
447
+ ]
448
+ }
449
+ );
450
+ };
399
451
  FirstRankIcon = () => {
400
452
  return /* @__PURE__ */ jsxRuntime.jsxs(
401
453
  "svg",
@@ -666,7 +718,8 @@ function useGeneralRankingScript(options) {
666
718
  dateRange = exports.getDateRange(90),
667
719
  address: searchValue,
668
720
  sortKey = "perp_volume",
669
- leaderboardEndpoint
721
+ leaderboardEndpoint,
722
+ foxifyOnly = false
670
723
  } = options || {};
671
724
  const [initialSort] = react.useState({
672
725
  sortKey,
@@ -714,6 +767,9 @@ function useGeneralRankingScript(options) {
714
767
  if (args.address) {
715
768
  searchParams.set("address", args.address);
716
769
  }
770
+ if (foxifyOnly) {
771
+ searchParams.set("foxify_only", "true");
772
+ }
717
773
  const baseUrl = leaderboardEndpoint || `/v1/broker/leaderboard/daily`;
718
774
  return `${baseUrl}?${searchParams.toString()}`;
719
775
  };
@@ -1028,12 +1084,13 @@ var init_generalRanking_widget = __esm({
1028
1084
  init_ranking_ui();
1029
1085
  init_generalRanking_script();
1030
1086
  exports.GeneralRankingWidget = (props) => {
1031
- const { dateRange, address, fields, sortKey, leaderboardEndpoint, ...rest } = props;
1087
+ const { dateRange, address, fields, sortKey, leaderboardEndpoint, foxifyOnly, ...rest } = props;
1032
1088
  const state = useGeneralRankingScript({
1033
1089
  dateRange,
1034
1090
  address,
1035
1091
  sortKey,
1036
- leaderboardEndpoint
1092
+ leaderboardEndpoint,
1093
+ foxifyOnly
1037
1094
  });
1038
1095
  return /* @__PURE__ */ jsxRuntime.jsx(exports.Ranking, { ...state, ...rest, fields, type: "general" });
1039
1096
  };
@@ -1069,23 +1126,23 @@ var TradingLeaderboardProvider = (props) => {
1069
1126
  var useTradingLeaderboardContext = () => {
1070
1127
  return react.useContext(TradingLeaderboardContext);
1071
1128
  };
1072
- var API_BASE = "https://backend.kodiak.finance/orderly/stats";
1129
+ var API_BASE = "https://staging.backend.kodiak.finance/orderly/stats";
1073
1130
  var formatDateLocal = (date) => {
1074
1131
  const year = date.getFullYear();
1075
1132
  const month = String(date.getMonth() + 1).padStart(2, "0");
1076
1133
  const day = String(date.getDate()).padStart(2, "0");
1077
1134
  return `${year}-${month}-${day}`;
1078
1135
  };
1079
- var getApiUrl = (dateRange) => {
1136
+ var getApiUrl = (dateRange, foxifyOnly) => {
1080
1137
  if (!dateRange?.from || !dateRange?.to) {
1081
1138
  const today = /* @__PURE__ */ new Date();
1082
1139
  const startDate2 = formatDateLocal(today);
1083
1140
  const endDate2 = formatDateLocal(today);
1084
- return `${API_BASE}?start_date=${startDate2}&end_date=${endDate2}`;
1141
+ return `${API_BASE}?start_date=${startDate2}&end_date=${endDate2}${foxifyOnly ? "&foxify_only=true" : ""}`;
1085
1142
  }
1086
1143
  const startDate = formatDateLocal(dateRange.from);
1087
1144
  const endDate = formatDateLocal(dateRange.to);
1088
- return `${API_BASE}?start_date=${startDate}&end_date=${endDate}`;
1145
+ return `${API_BASE}?start_date=${startDate}&end_date=${endDate}${foxifyOnly ? "&foxify_only=true" : ""}`;
1089
1146
  };
1090
1147
  var customFetcher = async (url) => {
1091
1148
  const response = await fetch(url);
@@ -1112,11 +1169,14 @@ var formatCurrency = (num, showSign = false) => {
1112
1169
  }
1113
1170
  return formatted;
1114
1171
  };
1115
- var BrokerStatsWidget = ({ dateRange }) => {
1172
+ var BrokerStatsWidget = ({
1173
+ dateRange,
1174
+ foxifyOnly
1175
+ }) => {
1116
1176
  const { isMobile } = orderlyUi.useScreen();
1117
1177
  const url = react.useMemo(
1118
- () => getApiUrl(dateRange),
1119
- [dateRange?.from, dateRange?.to]
1178
+ () => getApiUrl(dateRange, foxifyOnly),
1179
+ [dateRange?.from, dateRange?.to, foxifyOnly]
1120
1180
  );
1121
1181
  const {
1122
1182
  data: apiData,
@@ -3102,6 +3162,18 @@ var LeaderboardTab = /* @__PURE__ */ ((LeaderboardTab2) => {
3102
3162
 
3103
3163
  // src/components/leaderboard/generalLeaderboard/generalLeaderboard.script.ts
3104
3164
  init_utils();
3165
+ var useLeaderboardLocalStorage = () => {
3166
+ const [foxifyOnly, setFoxifyOnly] = orderlyHooks.useLocalStorage(
3167
+ "leaderboard_foxify_only",
3168
+ false
3169
+ );
3170
+ return {
3171
+ foxifyOnly,
3172
+ setFoxifyOnly
3173
+ };
3174
+ };
3175
+
3176
+ // src/components/leaderboard/generalLeaderboard/generalLeaderboard.script.ts
3105
3177
  var FilterDays2 = [1, 7, 30, 90];
3106
3178
  function useGeneralLeaderboardScript(options) {
3107
3179
  const { campaignDateRange, timeRange } = options || {};
@@ -3124,12 +3196,14 @@ function useGeneralLeaderboardScript(options) {
3124
3196
  customTimeRange: parsedTimeRange
3125
3197
  });
3126
3198
  const searchState = useSearch();
3199
+ const foxifyState = useLeaderboardLocalStorage();
3127
3200
  const useCampaignDateRange = react.useMemo(() => {
3128
3201
  return !!campaignDateRange;
3129
3202
  }, [campaignDateRange]);
3130
3203
  return {
3131
3204
  ...filterState,
3132
3205
  ...searchState,
3206
+ ...foxifyState,
3133
3207
  activeTab,
3134
3208
  onTabChange: setActiveTab,
3135
3209
  useCampaignDateRange,
@@ -3283,6 +3357,17 @@ var LeaderboardFilter = (props) => {
3283
3357
  value
3284
3358
  );
3285
3359
  });
3360
+ const foxifyFilterButton = /* @__PURE__ */ jsxRuntime.jsx(
3361
+ "button",
3362
+ {
3363
+ className: `oui-px-3 oui-py-1 oui-rounded oui-text-xs oui-font-medium oui-transition-colors oui-whitespace-nowrap ${props.foxifyOnly ? "oui-bg-primary oui-text-white" : "oui-bg-base-6 oui-text-base-contrast-60 hover:oui-bg-base-4 hover:oui-text-base-contrast"}`,
3364
+ onClick: () => {
3365
+ props.setFoxifyOnly(!props.foxifyOnly);
3366
+ },
3367
+ title: t("tradingLeaderboard.foxifyOnly.tooltip"),
3368
+ children: t("tradingLeaderboard.foxifyOnly")
3369
+ }
3370
+ );
3286
3371
  if (isMobile) {
3287
3372
  return /* @__PURE__ */ jsxRuntime.jsxs(
3288
3373
  orderlyUi.Flex,
@@ -3295,6 +3380,7 @@ var LeaderboardFilter = (props) => {
3295
3380
  className: orderlyUi.cn("oui-mobile-trading-leaderboard-ranking-filter"),
3296
3381
  children: [
3297
3382
  input,
3383
+ /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.Flex, { gap: 2, width: "100%", mt: 3, itemAlign: "center", children: foxifyFilterButton }),
3298
3384
  useCampaignDateRange ? /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.Flex, { gap: 3, className: "oui-w-full oui-py-3", children: /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.ScrollIndicator, { className: "oui-w-full", children: weeklyView }) }) : /* @__PURE__ */ jsxRuntime.jsxs(orderlyUi.Flex, { gap: 3, className: "oui-w-full", children: [
3299
3385
  dateRangeView,
3300
3386
  /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.ScrollIndicator, { className: "oui-w-full", children: /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.Flex, { gap: 3, children: filterDayView }) })
@@ -3316,7 +3402,10 @@ var LeaderboardFilter = (props) => {
3316
3402
  !useCampaignDateRange && dateRangeView,
3317
3403
  !useCampaignDateRange && filterDayView
3318
3404
  ] }),
3319
- /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.Box, { width: 240, children: input })
3405
+ /* @__PURE__ */ jsxRuntime.jsxs(orderlyUi.Flex, { gap: 2, itemAlign: "center", children: [
3406
+ foxifyFilterButton,
3407
+ /* @__PURE__ */ jsxRuntime.jsx(orderlyUi.Box, { width: 240, children: input })
3408
+ ] })
3320
3409
  ]
3321
3410
  }
3322
3411
  );
@@ -3464,12 +3553,8 @@ var GeneralLeaderboard = (props) => {
3464
3553
  props.activeTab === "volume" /* Volume */ ? "volume" : "pnl"
3465
3554
  ];
3466
3555
  }
3467
- const baseFields = [
3468
- "rank",
3469
- "address",
3470
- "volume",
3471
- "pnl"
3472
- ];
3556
+ const baseFields = ["rank", "address"];
3557
+ baseFields.push("volume", "pnl");
3473
3558
  if (props.leaderboardEndpoint) {
3474
3559
  baseFields.push("points");
3475
3560
  }
@@ -3477,7 +3562,13 @@ var GeneralLeaderboard = (props) => {
3477
3562
  }, [isMobile, props.activeTab, props.leaderboardEndpoint]);
3478
3563
  if (isMobile) {
3479
3564
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3480
- /* @__PURE__ */ jsxRuntime.jsx(BrokerStatsWidget, { dateRange: props.dateRange }),
3565
+ /* @__PURE__ */ jsxRuntime.jsx(
3566
+ BrokerStatsWidget,
3567
+ {
3568
+ dateRange: props.dateRange,
3569
+ foxifyOnly: props.foxifyOnly
3570
+ }
3571
+ ),
3481
3572
  /* @__PURE__ */ jsxRuntime.jsxs(
3482
3573
  orderlyUi.Box,
3483
3574
  {
@@ -3510,7 +3601,8 @@ var GeneralLeaderboard = (props) => {
3510
3601
  address: props.searchValue,
3511
3602
  sortKey: props.activeTab === "volume" /* Volume */ ? "perp_volume" : "realized_pnl",
3512
3603
  fields,
3513
- leaderboardEndpoint: props.leaderboardEndpoint
3604
+ leaderboardEndpoint: props.leaderboardEndpoint,
3605
+ foxifyOnly: props.foxifyOnly
3514
3606
  }
3515
3607
  ) })
3516
3608
  ]
@@ -3519,7 +3611,13 @@ var GeneralLeaderboard = (props) => {
3519
3611
  ] });
3520
3612
  }
3521
3613
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3522
- /* @__PURE__ */ jsxRuntime.jsx(BrokerStatsWidget, { dateRange: props.dateRange }),
3614
+ /* @__PURE__ */ jsxRuntime.jsx(
3615
+ BrokerStatsWidget,
3616
+ {
3617
+ dateRange: props.dateRange,
3618
+ foxifyOnly: props.foxifyOnly
3619
+ }
3620
+ ),
3523
3621
  /* @__PURE__ */ jsxRuntime.jsxs(
3524
3622
  orderlyUi.Box,
3525
3623
  {
@@ -3542,7 +3640,8 @@ var GeneralLeaderboard = (props) => {
3542
3640
  dateRange: props.dateRange,
3543
3641
  address: props.searchValue,
3544
3642
  fields,
3545
- leaderboardEndpoint: props.leaderboardEndpoint
3643
+ leaderboardEndpoint: props.leaderboardEndpoint,
3644
+ foxifyOnly: props.foxifyOnly
3546
3645
  }
3547
3646
  ) })
3548
3647
  ]
@@ -7589,7 +7688,13 @@ var LeaderboardSection = (props) => {
7589
7688
  if (currentCampaignId === "general") {
7590
7689
  return /* @__PURE__ */ jsxRuntime.jsxs(orderlyUi.Box, { px: 3, className: orderlyUi.cn("oui-mix-blend-screen"), children: [
7591
7690
  /* @__PURE__ */ jsxRuntime.jsx(LeaderboardBackground, { backgroundSrc }),
7592
- /* @__PURE__ */ jsxRuntime.jsx(BrokerStatsWidget, { dateRange: memoizedDateRange }),
7691
+ /* @__PURE__ */ jsxRuntime.jsx(
7692
+ BrokerStatsWidget,
7693
+ {
7694
+ dateRange: memoizedDateRange,
7695
+ foxifyOnly: leaderboardScript.foxifyOnly
7696
+ }
7697
+ ),
7593
7698
  /* @__PURE__ */ jsxRuntime.jsx(
7594
7699
  GeneralLeaderboard,
7595
7700
  {
@@ -7601,7 +7706,13 @@ var LeaderboardSection = (props) => {
7601
7706
  }
7602
7707
  if (currentCampaign?.leaderboard_config?.use_general_leaderboard) {
7603
7708
  return /* @__PURE__ */ jsxRuntime.jsxs(orderlyUi.Box, { px: 3, children: [
7604
- /* @__PURE__ */ jsxRuntime.jsx(BrokerStatsWidget, { dateRange: memoizedDateRange }),
7709
+ /* @__PURE__ */ jsxRuntime.jsx(
7710
+ BrokerStatsWidget,
7711
+ {
7712
+ dateRange: memoizedDateRange,
7713
+ foxifyOnly: leaderboardScript.foxifyOnly
7714
+ }
7715
+ ),
7605
7716
  /* @__PURE__ */ jsxRuntime.jsx(
7606
7717
  LeaderboardTitle,
7607
7718
  {
@@ -7622,7 +7733,13 @@ var LeaderboardSection = (props) => {
7622
7733
  }
7623
7734
  if (currentCampaign && !currentCampaign.hide_arena && currentCampaignId != "general") {
7624
7735
  return /* @__PURE__ */ jsxRuntime.jsxs(orderlyUi.Box, { px: 3, children: [
7625
- /* @__PURE__ */ jsxRuntime.jsx(BrokerStatsWidget, { dateRange: memoizedDateRange }),
7736
+ /* @__PURE__ */ jsxRuntime.jsx(
7737
+ BrokerStatsWidget,
7738
+ {
7739
+ dateRange: memoizedDateRange,
7740
+ foxifyOnly: leaderboardScript.foxifyOnly
7741
+ }
7742
+ ),
7626
7743
  /* @__PURE__ */ jsxRuntime.jsx(
7627
7744
  LeaderboardTitle,
7628
7745
  {